<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Контролируемое скачивание");
?>Скачать файл <a href="/examples/download/manual.zip">manual.zip</a> 
<br />
 
<br />
 Скачать файл <a href="/examples/download/download_private/private_file.zip">private_file.zip</a> 
<br /><br />
 На многих сайтах требуется организовать контролируемое скачивание общедоступных файлов или файлов с ограниченным доступом. 

<br /><br />
 В каталоге <b>/examples/download/</b> находится пример скачивания общедоступных файлов с сайта с фиксацией событий в модуле статистики. Все файлы для скачивания лежат в каталоге <i>/examples/download/files/</i>. 
При создании ссылки на файл для скачивания каталог <i>/files/</i> не указывается. 
<br /><br />
При клике по созданной ссылке вызывается файл, указанный как обработчик 404 ошибки в файле <i>.htaccess</i> в текущем каталоге. В нашем примере это файл <i>download.php</i>.  
<br /><br />
В этом же каталоге есть скрипт <i>download_balance.php</i>. 
Он позволяет регулировать нагрузку скачиваний между несколькими серверами.
На этих серверах должны быть абсолютно идентичные каталоги <i>/download/</i> 
с одинаковым набором файлов и подкаталогов.
<br />
Для того чтобы подключить этот скрипт необходимо:
<ol>
   <li>В файле <i>.htaccess</i> установить обработчик 404 ошибки на этот скрипт.</li>
   <li>В скрипте <i>download_balance.php</i> раскомментировать массив <i>$arrHOSTS</i> и задать в нем адреса серверов для скачиваний и вероятности выбора того или иного сервера.</li>
</ol> 

Для того чтобы система разрешала скачивать файлы всем без авторизации,
необходимо в корне сайта разместить файл <i>.access.php</i> со следующим содержимым:
<br />

<code>
&lt;?
$PERM["/"]["*"]="R";
?&gt;
</code>


<br /><br />
В каталоге <b>/examples/download/download_private/</b> приведен пример реализации скачивания файлов с ограниченным доступом с фиксацией события в модуле статистики. 
<br /><br />
Все файлы лежат в каталоге <i>/examples/download/download_private/files/</i>, а ссылка на файл для скачивания имеет вид:
<br />&lt;a&nbsp;href="/examples/download/download_private/private_file.zip"&gt; private_file.zip&lt;/a&gt; (т.е. без каталога /files/). 
<br />
Настройки произведены таким образом, что только зарегистрированные пользователи имеют право на скачивание этого файла из каталога. Доступ на чтение каталога <i>/files</i> имеют только зарегистрированные пользователи. 
<br />
Файл <i>download_private.php</i> вызывается в этом случае как обработчик 404 ошибки. 

<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>